home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib18.dsk
/
STACK EM UP DEMO.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
88 lines
1 REM **********************
2 REM * STACK EM UP DEMO *
3 REM * BY KEVIN KILLION *
4 REM * COPYRIGHT (C) 1983 *
5 REM * BY MICROSPARC, INC *
6 REM * LINCOLN, MA. 01773 *
7 REM **********************
10 REM THIS PROGRAM SHOWS READERSHIP FOR SEVERAL MAGAZINES, ILLUSTRATING THIS AS A LAYER OF BLOCKS
30 NB = 5: REM 5 MAGAZINES
40 :
50 REM OCCASIONAL BUYERS
60 DATA 140180,74090,71660,44740,40630,200000
70 FOR I = 1 TO NB: READ L(I): NEXT : READ LM
80 :
85 REM ISSUES PER YEAR PER READER
90 DATA 4.5,6,8,2.5,3,12
95 FOR I = 1 TO NB: READ R(I): NEXT : READ RM
100 :
110 REM DO IT!
120 :
130 HOME : VTAB 22: PRINT "** COPYRIGHT 1983 BY MICROSPARC, INC. **": VTAB 1: HGR : GOSUB 8000
140 END : REM END OF USER PROGRAM
8000 :
8010 :
8020 REM BLOCK DRAWING ROUTINE. ENTER WITH: NB - # BLOCKS. L() - LEFT VALUES. R() - RIGHT VALUES. LM - LEFT MAX VALUE. RM - RIGHT MAX VALUE
8030 XBASE = 139
8035 YBASE = 160
8040 MAX = 120
8050 HT = 15: REM HEIGHT
8060 HS = 10: REM SEPARATION
8070 BLACK = 4
8072 OVERHUE = 6
8074 SIDEHUE = 5
8090 :
8100 FOR I = 1 TO NB
8105 :
8110 L = L(I)/LM
8115 L = MAX *L
8120 LX = XBASE -L
8125 LY = YBASE -L/2
8128 :
8130 R = R(I)/RM
8135 R = MAX *R
8140 RX = XBASE +R
8145 RY = YBASE -R/2
8150 :
8151 :
8160 REM FIND TOP, SEE IF OFF SCREEN
8165 :
8170 TY = (L +R)/2 +HT:TY = YBASE -TY
8180 IF TY <0 THEN PRINT "BLOCK "I" WOULD BE OFF SCREEN -- NOT SHOWN": GOTO 8400
8190 TX = XBASE -L +R
8200 :
8205 :
8210 REM COLOR THE SIDES
8215 :
8220 HCOLOR= SIDEHUE
8230 FOR Y = 0 TO HT
8240 HPLOT LX,LY -Y TO XBASE,YBASE -Y TO RX,RY -Y
8250 NEXT
8260 :
8265 :
8270 REM COLOR THE TOP
8271 :
8275 HCOLOR= OVERHUE
8280 FOR Y = TY TO YBASE -HT
8290 AA = LX +2 * ABS(LY -HT -Y)
8300 ZZ = RX -2 * ABS(RY -HT -Y)
8310 IF ZZ >(AA) THEN HPLOT AA,Y TO ZZ,Y
8320 NEXT
8330 :
8335 :
8340 REM BLACKEN EDGES
8345 :
8350 HCOLOR= BLACK
8360 HPLOT XBASE,YBASE -HT TO LX,LY -HT TO TX,TY TO RX,RY -HT TO XBASE,YBASE TO RX,RY
8370 HPLOT XBASE,YBASE -HT TO XBASE,YBASE
8371 L = 2 * INT(LX/2) -1
8372 HPLOT L,LY -HT TO L,LY
8373 R = 2 * INT(RX/2) +1
8374 HPLOT R,RY -HT TO R,RY
8380 :
8385 :
8390 REM ADVANCE
8391 :
8395 YBASE = YBASE -(HT +HS)
8400 NEXT I
8410 RETURN